Lecture 2 - RPC and Threads

MIT 6.824

MIT 6.824 Distributed Systems - Moments to Remember 用于标记我在学习分布式系统过程中认为比较重要和个人感兴趣的知识,同时记录我疑惑和思考的过程。

在最新的课程表中,虽然课程名称变成 MIT 6.5840 了,但是内容差不多,都是分布式系统设计。

Why Go

Language Designed for Concurrency

Good support to thread and locking and synchronization to thread

分布式系统需要并行性,而线程是我们实行并行性程序的主要方式(I/O Concurrency - 一个程序可以有多个 goroutine 来响应多个 RPC (分布式)。
还有就是多CPU上的“真”并行化)

Goroutine and threads
M:N
Everything is just a goroutine

低调度开销

Race Conditions in Go

mutexlocks
channels
sync.Cond
waitGroup

Convenient PRC Package

Safe Language

Type safe(all compilation-time) and memory safe (garbage collection)

Web Crawler